package com.gialen.tools.dao.repository.settlement;

import com.gialen.common.model.PageRequest;
import com.gialen.tools.dao.dto.OrderDetailDto;
import com.gialen.tools.dao.dto.OrderQueryDto;
import com.gialen.tools.dao.entity.settlement.CommissionSettlementDetail;
import com.gialen.tools.dao.entity.settlement.CommissionSettlementDetailExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;

@org.springframework.stereotype.Repository
public interface CommissionSettlementDetailMapper {

    /**
     * 统计用户月订单明细数量
     * @param queryDto
     * @return
     */
    Long countOrderDetailByMonth(OrderQueryDto queryDto);

    /**
     * 按月查询用户的订单明细列表
     * @param queryDto
     * @param offset
     * @param limit
     * @return
     */
    List<OrderDetailDto> getOrderDetailListByMonth(OrderQueryDto queryDto, int offset, int limit);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table commission_settlement_detail
     *
     * @mbg.generated
     */
    long countByExample(CommissionSettlementDetailExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table commission_settlement_detail
     *
     * @mbg.generated
     */
    int deleteByExample(CommissionSettlementDetailExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table commission_settlement_detail
     *
     * @mbg.generated
     */
    int deleteByPrimaryKey(Long id);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table commission_settlement_detail
     *
     * @mbg.generated
     */
    int insert(CommissionSettlementDetail record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table commission_settlement_detail
     *
     * @mbg.generated
     */
    int insertSelective(CommissionSettlementDetail record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table commission_settlement_detail
     *
     * @mbg.generated
     */
    List<CommissionSettlementDetail> selectByExample(CommissionSettlementDetailExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table commission_settlement_detail
     *
     * @mbg.generated
     */
    CommissionSettlementDetail selectByPrimaryKey(Long id);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table commission_settlement_detail
     *
     * @mbg.generated
     */
    int updateByExampleSelective(@Param("record") CommissionSettlementDetail record, @Param("example") CommissionSettlementDetailExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table commission_settlement_detail
     *
     * @mbg.generated
     */
    int updateByExample(@Param("record") CommissionSettlementDetail record, @Param("example") CommissionSettlementDetailExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table commission_settlement_detail
     *
     * @mbg.generated
     */
    int updateByPrimaryKeySelective(CommissionSettlementDetail record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table commission_settlement_detail
     *
     * @mbg.generated
     */
    int updateByPrimaryKey(CommissionSettlementDetail record);
}